package Lee_code;

import java.math.BigInteger;

/**
 * @author blh
 * @date 2024年07月29日 18:26
 */
public class Lee_400_729 {
    public int findNthDigit(int n) {

        int start = 1;
        int tempLen = 1;
        while (true) {
            // 求一下i是几位数
            // tempLen = getNum(start);
            // 到下一位的尾部
            int next = start * 10;
            // 中间有多少数
            int betweenNum = next - start;
            // 中间有多少位数
            long betweenNumLen = (long) betweenNum * tempLen;
            if (n <= betweenNumLen) {
                // 过了多少个数
                int num = (n - 1) / tempLen;
                int index = (n - 1) % tempLen;
                String str = String.valueOf(start + num);
                char res = str.charAt(index);
                return (int) res - 48;
            }
            n = (int) (n - betweenNumLen);
            start = next;
            // 更新位数
            tempLen++;
        }
    }

}
